Hybrid Coarrays: a PGAS Feature for Many-Core Architectures
نویسندگان
چکیده
Accelerators such as NVIDIA GPUs and Intel MICs are currently provided as co-processor devices, usable only through a CPU host. For Intel MICs it is planned that this constraint will be lifted in the near future: CPU and accelerator(s) will then form a single, many-core, processor capable of peak performance of several Teraflops with high energy efficiency. In order to exploit the available computational power, the user will be compelled to write a code more “hardware-aware”, in contrast to the common philosophy of hiding hardware details as much as possible. The simple two-sided communication approach often used in message-passing applications introduces synchronization costs that may limit the performance on the next generation machines. PGAS languages, like coarray Fortran and UPC, propose a one-sided approach where a process accesses directly the remote memory of another process without interrupting its execution. In this paper, we propose a CUDA-aware coarray implementation, capable of merging the expressive syntax of coarrays with the computational power of GPUs. We propose a new keyword for the Fortran language, which allows the user to map with a high-level syntax some hardware features of the many-core machines. Our hybrid coarray implementation is based on OpenCoarrays, the coarray transport layer currently adopted by the GNU Fortran compiler.
منابع مشابه
Performance of Fortran Coarrays on the Cray XE6
Coarrays are a feature of the Fortran 2008 standard that enable parallelism using a small number of additional language elements. The execution model is that of a Partitioned Global Address Space (PGAS) language. The Cray XE architecture is particularly interesting for studying PGAS languages: it scales to very large numbers of processors; the underlying GEMINI interconnect is ideally suited to...
متن کاملMigrating a Scientific Application from MPI to Coarrays
MPI is a de facto standard for portable parallel programming using a message passing paradigm. Interest is growing in other paradigms, in particular Partitioned Global Address Space (PGAS) languages such as Coarray Fortran, UPC and Titanium. Most Computational Science and Engineering codes are written in Fortran, and the 2008 Fortran standard will include coarrays, a Cray initiated PGAS extensi...
متن کاملHybrid-Parallel Sparse Matrix–Vector Multiplication and Iterative Linear Solvers with the communication library GPI
We present a library of Krylov subspace iterative solvers built over the PGAS-type communication layer GPI. The hybrid pattern is here the appropriate choice to reveal the hierarchical parallelism of clusters with multiand manycore nodes. Our approach includes asynchronous communication and differs in many aspects from the classical one. We first present the GPI-based implementation of the spar...
متن کاملGasimo: a global address space simulation model
The partitioned global address space (PGAS) programming model has gained attention as a robust model suitable for a diversity of emerging concurrent architectures. PGAS offers more scalability over the former distributed shared memory system (DSM) by supporting asynchronous execution based on message passing. Combining asynchronous communication with the facility to make the location of data tr...
متن کاملA Characterization of Shared Data Access Patterns in UPC Programs
The main attraction of Partitioned Global Address Space (PGAS) languages to programmers is the ability to distribute the data to exploit the affinity of threads within shared-memory domains. Thus, PGAS languages, such as Unified Parallel C (UPC), are a promising programming paradigm for emerging parallel machines that employ hierarchical dataand task-parallelism. For example, large systems are ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2015